home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
Z-Misc Series
/
(k)zj.d64
/
txt.3d drawing
< prev
next >
Wrap
Text File
|
2007-03-01
|
2KB
|
92 lines
╘╚╔╥─ ─╔═┼╬╙╔╧╬
BY ╨AUL VAN ╠EEUWEN
─UTCH ├╧═┴╠ ╒SERS ╟ROUP
╧NE OF THE NICE SIDES OF USING
COMPUTERS IS TO DRAW PICTURES.
┬ECAUSE THE LAWS OF ╨ERPECTIVE CAN BE
FORMULATED IN MATHEMATICAL TERMS, YOU
CAN PROGRAM THE COMPUTER TO DRAW EVEN
3-DIMENSIONAL PICTURES. ╔ ALWAYS
THOUGHT THAT ╔ NEEDED EXTENDED AND
COMPLEX PROGRAMS TO DO SO, SO ╔ DID
NOT GET STARTED YET.
╚OWEVER, WHILE READING A ╟ERMAN
MAGAZINE, ├64'ER, ╔ DISCOVERED A
SMALL PROGRAM WITH (IN MY EYES)
IMPRESSING AND ABOVE ALL NICE
PICTURES FOR THE ├┬═64. ╘HE PROGRAM
WAS WRITTEN IN ┬┴╙╔├, BUT TRANSLATING
IT INTO ├╧═┴╠ WAS A MINOR JOB. ┴ND
RUNNING IT IS NOW TWO TIMES FASTER.
╘HE BASE FOR THE PROGRAM (ON DISK AS
3-─╔═) IS A 'NORMAL' FUNCTION, SUCH
AS
╞╒╬├ NA(X)
╥┼╘╒╥╬ 60*╙╔╬(X/30)+10
┼╬─╞╒╬├ NA
╞OR PLOTTING WE USE X,Y,Z-COORDINATES
WITH A HORIZONTAL X,Y-PLANE. ╘HE
VERTICAL Z-COORDINATE IS THE VALUE OF
A FUNCTION F(X,Y) WHICH CAN BE
DERIVED FROM THE FUNCTION ╬┴ AS
FOLLOWS:
Z0:=-60 // START VALUE
╞╧╥ X:=0 ╘╧ 100 ─╧
// LOOK AT A CIRLCE IN THE
// X,Y-PLANE AROUND (0,0) WITH A
// RADIUS D OF 100
D:=5*╔╬╘(╙╤╥(10000-X*X)/5)
╞╧╥ Y:=D ╘╧ -D ╙╘┼╨ -5 ─╧
// R IS DISTANCE TO Z-AXIS
R:=╙╤╥(X*X-Y*Y)
Z:=25+NA(R)-0.6*Y // F(X,Y)
╔╞ Z>Z0 ╘╚┼╬ // PLOT THIS POINT
PLOT(X,Z)
PLOT(-X,Z) // SYMMETRIC IN Z-AXIS
Z0:=Z // KEEP OLD VALUE
┼╬─╞╧╥ Y
┼╬─╞╧╥ X
╙O WE DRAW A CIRCLE SYMMETRIC
FUNCTION AROUND THE Z-AXIS, DERIVED
FROM THE FUNCTION ╬┴.
┬ECAUSE WE WANT TO SEE THIS DRAWING
FROM ABOVE, ALL POINTS LYING BEFORE
THE X,Z-PLANE ARE SHIFTED DOWN A LOT,
POINTS BEHIND THE X,Z-PLANE ARE
SHIFTED UP. ╘HIS IS DONE WITH THE
TERM
-0.6*Y
IN THE STATEMENT
Z:=25+NA(R)-0.6*Y
┬ECAUSE ALL POINTS ARE PLOTTED
UPWARDS IN THE Y,Z-PLANE (THE
SCREEN), IT IS SIMPLE TO TAKE CARE OF
HIDDEN POINTS. ╘HE OLD VALUE OF ┌ IS
STORED IN HELP VARIABELE ┌0 AND AFTER
COMPARING THESE TWO VALUES WE CAN
PLOT OR ╬╧╘ PLOT.
╙OME OTHER INTERESTING FUNCTIONS ╬┴
ARE:
15*┴┬╙(╠╧╟/70+0.5)-╠╧╟(X*20+0.5)
╔╬╘(X)+110
90*┼╪╨(-X*X/1500)
85/(X/25+1)
30*├╧╙(╨╔*X/15)
╧R DO SOME EXPERIMENTS YOURSELF.